Ollama 常见命令与配置
本文档总结了 Ollama 的常用命令和环境变量,帮助你更好地使用和配置 Ollama。
常用命令
以下是一些常用的 Ollama CLI 命令:
ollama run <model_name>
: 加载并运行指定的模型进行交互式对话。如果模型尚未下载,会自动下载。- 在运行模型时,可以使用
/set parameter <param_name> <value>
来临时调整参数,例如/set parameter num_ctx 4096
来设置当前会话的上下文窗口。
- 在运行模型时,可以使用
ollama pull <model_name>
: 从库中下载指定的模型。ollama push <model_name>
: 推送模型到库中(通常用于推送自定义模型)。ollama list
或ollama ls
: 列出本地已下载的所有模型。ollama ps
: 显示当前正在运行(加载到内存中)的模型及其状态,包括内存占用、使用的处理器(CPU/GPU)以及空闲时间。ollama stop <model_name>
: 停止指定的模型并将其从内存中卸载。ollama rm <model_name>
: 从本地磁盘删除指定的模型。ollama serve
: 启动 Ollama 后台服务。通常在安装后会自动作为服务运行(macOS 应用、Linux systemd、Windows 服务)。ollama cp <source_model> <destination_model>
: 复制一个本地模型。ollama show <model_name>
: 显示模型的详细信息,包括 Modelfile 内容、参数等。
常用环境变量
Ollama 的行为可以通过环境变量进行配置。
OLLAMA_HOST
: 设置 Ollama 服务监听的网络地址和端口。- 默认值:
127.0.0.1:11434
- 示例:
0.0.0.0:11434
(允许来自网络的连接)
- 默认值:
OLLAMA_MODELS
: 指定 Ollama 存放下载模型和 Modelfile 的目录。- 默认位置因操作系统而异 (例如
~/.ollama/models
on Linux)。
- 默认位置因操作系统而异 (例如
OLLAMA_CONTEXT_LENGTH
: 设置全局默认的上下文窗口大小(以 token 数量计)。模型可以覆盖此设置。- 默认值:
2048
- 示例:
4096
- 默认值:
OLLAMA_KEEP_ALIVE
: 控制模型在没有收到请求后,在内存中保持加载状态的时长。- 默认值:
5m
(5 分钟) - 示例:
30m
(30 分钟),-1
(永久保持加载,直到手动停止或服务重启),0
(请求完成后立即卸载)
- 默认值:
OLLAMA_NUM_PARALLEL
: 设置每个模型能够并行处理的最大请求数量。- 默认值: 根据可用内存自动选择(通常是 1 或 4)。
OLLAMA_MAX_LOADED_MODELS
: 允许同时加载到内存中的最大模型数量,前提是内存足够。- 默认值: 根据 GPU 数量(
3 * num_gpu
)或 CPU 推理(3
)自动计算。
- 默认值: 根据 GPU 数量(
OLLAMA_MAX_QUEUE
: Ollama 服务在返回 "server busy" 错误前可以排队等待处理的最大请求数。- 默认值:
512
- 默认值:
HTTPS_PROXY
: 为 Ollama 配置 HTTPS 代理,用于下载模型等网络请求。- 示例:
https://proxy.example.com:port
- 注意: 通常不需要设置
HTTP_PROXY
。
- 示例:
OLLAMA_FLASH_ATTENTION
: 设置为1
以启用 Flash Attention(如果模型和硬件支持)。可以显著减少高上下文长度时的内存占用。- 默认值: 未设置 (禁用)
- 示例:
1
OLLAMA_KV_CACHE_TYPE
: 设置 K/V 上下文缓存的量化类型,以减少内存占用(尤其是在启用 Flash Attention 时)。- 默认值:
f16
(全精度,内存占用最高) - 可选值:
q8_0
(8 位量化,内存约为 f16 的 1/2,精度损失小),q4_0
(4 位量化,内存约为 f16 的 1/4,可能有较明显精度损失)。
- 默认值:
CUDA_VISIBLE_DEVICES
(NVIDIA GPUs): 控制 Ollama 可以看到和使用的具体 NVIDIA GPU 设备。这是一个标准的 NVIDIA 驱动环境变量。- 示例:
0
(只使用第一个 GPU),1,2
(使用第二个和第三个 GPU),""
(不使用任何 GPU,强制 CPU,即使检测到 GPU)。 - 用途: 隔离 GPU 资源,为特定任务分配 GPU,或进行测试。
- 示例:
如何配置环境变量
配置方法取决于你的操作系统和运行方式:
- macOS (App): 使用
launchctl setenv OLLAMA_VARIABLE "value"
命令设置,然后重启 Ollama 应用。 - Linux (systemd): 使用
systemctl edit ollama.service
,在[Service]
部分添加Environment="OLLAMA_VARIABLE=value"
,然后运行systemctl daemon-reload && systemctl restart ollama
。 - Windows: 在"编辑系统环境变量"中为你的用户账户添加或修改环境变量,然后重启 Ollama 应用。
- Docker: 在
docker run
命令中使用-e OLLAMA_VARIABLE=value
参数。
并发处理与多卡推理
Ollama 支持并发请求处理和自动利用多个 GPU 进行推理。
并发请求
- 并行处理: Ollama 可以同时处理多个请求。关键环境变量包括:
OLLAMA_NUM_PARALLEL
: 控制单个模型实例能同时处理的最大请求数。默认自动选择。OLLAMA_MAX_LOADED_MODELS
: 允许同时加载到内存中的最大不同模型数量。默认根据 GPU 数量或 CPU 推理自动计算。OLLAMA_MAX_QUEUE
: 服务器繁忙时最大排队请求数,默认为512
。
多卡推理
- 自动处理: Ollama 会自动检测并使用所有可用的 GPU。
- 如果模型能放入单个 GPU,则优先加载到该 GPU。
- 如果模型太大无法放入单个 GPU,则自动分散到所有可用 GPU 上运行。
- 无需特定配置: 用户通常不需要额外配置来启用多卡推理。确保 GPU 驱动程序正确安装即可。
OLLAMA_MAX_LOADED_MODELS
也会影响多卡环境,允许在不同 GPU 上并行加载多个模型(如果 VRAM 足够)。
参考来源: Ollama FAQ